import java.util.Queue;
import java.util.LinkedList;

public class aaa_Queue {
     public static void main(String[] args) {

          // 初始化一个空的整型队列 q
          Queue<Integer> q = new LinkedList<>();
  
          // 在队尾添加元素
          q.offer(10);
          q.offer(20);
          q.offer(30);
  
          // 检查队列是否为空     输出：false
          System.out.println(q.isEmpty());
  
          // 获取队列的大小   输出：3
          System.out.println(q.size());
  
          // 获取队列的队头元素!!!    输出：10
          System.out.println(q.peek());
  
          // 删除队头元素!!!
          q.poll();
  
          // 输出新的队头元素：20
          System.out.println(q.peek());


          q.offer(40);
          q.offer(50);
// 输出整个队列（只存储整形）
          //1.直接输出队列
          System.out.println(q);

          //2.遍历队列中的每个元素
          for(Integer val: q){
               System.out.print(val + " ");
          }
          System.out.println();


//若队列中存储字符数组 (Queue<char[]>)
          // 初始化一个字符数组类型的队列
          Queue<char[]> charArrayQueue = new LinkedList<>();

          // 添加字符数组到队列
          charArrayQueue.offer(new char[]{'A','B','C'});
          charArrayQueue.offer(new char[]{'D','E'});
          charArrayQueue.offer(new char[]{'F','G','H'});

          // 1.直接输出队列 (注意：这样只会输出数组的引用!! 不是内容)
          System.out.println(charArrayQueue);  // 输出类似：[[C@12a3a4b, [C@5e7f8c9, [C@10abcde]

          // 2.遍历队列中的每个字符数组，并输出其内容
          for(char[] arr : charArrayQueue) {
               System.out.print(new String(arr) + " ");  // 输出: ABC DE FGH
          }
          System.out.println();

          // 3.遍历并输出每个字符数组中的单个字符
          for(char[] arr : charArrayQueue) {
               for(char c : arr) {
                    System.out.print(c + " ");  // 输出: A B C D E F G H
               }
          }
          System.out.println();

               //各个“单词”间分开
          for(char[] arr : charArrayQueue) {
               for(char c : arr) {
                    System.out.print(c + " ");  // 输出: A B C D E F G H
               }
               System.out.print(" | ");
          }
          System.out.println();
          
     }
}